package com.developmentReformProject.service;

/***********************************************************************
 * name: 审核项目服务接口
 * Module:  AuditProjectLibraryService.java
 * Author:  胡志鹏
 * Purpose: Defines the Interface AuditProjectLibraryService
 ***********************************************************************/

import com.developmentReformProject.dto.AdminQueryDto;
import com.developmentReformProject.dto.ApplyDto;
import com.developmentReformProject.dto.ApplyQueryDto;
import com.developmentReformProject.entity.Admin;
import com.developmentReformProject.entity.Apply;
import com.developmentReformProject.entity.Enterprise;
import com.developmentReformProject.utils.PageUtil;

import java.util.*;


public interface AuditProjectLibraryService {
    /**
     * 添加项目
     * @param apply
     * @return
     */
    String addProject(Apply apply);

    /**
     * 修改项目
     * @param apply
     * @return
     */
    String updateProject(Apply apply);

    /**
     * 通过项目编号删除项目
     * @param projectNo
     * @return
     */
    String deleteProject(Integer projectNo);

    /**
     * 通过项目编号批量删除项目
     * @param projectNos
     * @return
     */
    String deleteProject(int[] projectNos);

    /**
     * 通过项目编号查找项目
     * @param projectNo
     * @return
     */
    ApplyDto queryProjectById(Integer projectNo);

    /**
     * 通过项目编号批量查找项目
     * @param projectNo
     * @return
     */
    List<ApplyDto> queryProjectList(List projectNo[]);

    /**
     * 通过经济收益分析查找项目
     * @param constructionStatus
     * @return
     */
    List<ApplyDto> queryProjectByConstructionStatus(String constructionStatus);

    /**
     * 通过企业编码查找项目
     * @param enterprise
     * @return
     */
    List<ApplyDto> queryProjectByentEnterpriseNumber(Enterprise enterprise);

    /**
     * 通过经济收益查找项目
     * @param revenue
     * @return
     */
    List<ApplyDto> queryProjectByRevenue(Double revenue);

    /**
     * 通过具体分类查找项目
     * @param specificType
     * @return
     */
    List<ApplyDto> queryProjectBySpecificType(String specificType);

    /**
     * 导出项目书
     * @param projectNo
     * @return
     */
    String reportExport(Integer projectNo);

    /**
     * 审核分析
     * @param projectNo
     * @return
     */
    String auditAnalysis(Integer projectNo);
    PageUtil<Apply> pageList(ApplyQueryDto applyQueryDto) throws Exception;
    PageUtil<Apply> cleanAdmin(ApplyQueryDto applyQueryDto) throws Exception;
}